package com.hyhy.hycloud.uaa.rpc;

/**
 * 请求签名RPC服务接口
 *
 * @author Xuegui Yuan
 * @date 2018-12-12
 */
public interface RequestSignatureServiceApi {

    /**
     * 生成请求ID
     *
     * @return 请求ID
     */
    String genRequestId();

    /**
     * 生成签名
     *
     * @param bizCode   业务代码
     * @param requestId 请求ID
     * @return 签名
     */
    String genSignature(String bizCode, String requestId);

    /**
     * 验证签名
     *
     * @param bizCode   业务代码
     * @param requestId 请求ID
     * @param signature 签名
     * @throws InvalidRequestSignatureException 非法请求签名异常
     */
    void checkSignature(String bizCode, String requestId, String signature) throws InvalidRequestSignatureException;
}
